CLOS Eiffel and Sather: A Comparison
نویسندگان
چکیده
data types, inheritance, dynamic binding and garbage collection. bstract data types provide encapsulation and inheritance eases reuse. Both promote extensibility and modi ability. These two requirements seem widely accepted and we will not address them further. ynamic binding of functions to function names is one key to the exibility and extensibility of object-oriented languages. It allows new code to be called from unaltered old code by passing data of new types to old operations or assigning them to old variables. It is implemented by dynamic dispatch in which run-time type information is used to lookup, or bind to, the proper function. Lisp-machine operating systems typically have over 2000 classes and Smalltalk systems have about 1000. These systems have evolved over fteen years and rely on incremental compilation and dynamic dispatch to allow extensions and reuse of the existing class hierarchies while the system is running. Dynamic dispatch makes
منابع مشابه
The Sather Language and Libraries
Sather is an object-oriented language derived from Eiffel which is particularly well suited for the needs of scientific research groups. It is designed to be very efficient and simple while supporting strong typing, garbage collection, object-oriented dispatch, multiple inheritance, parameterized types, and a clean syntax:. It compiles into portable C code and easily links with existing C code....
متن کاملImport is Not Inheritance - Why We Need Both: Modules and Classes
The design of many popular object-oriented languages like Smalltalk, Eiffel, or Sather follows a certain trend: The class is the only structuring form. In this paper, the need for having modules besides classes is claimed. Modules stem from a different language family and at first glance it seems that they can easily be unified with classes. Among other things, unifying modules and classes carr...
متن کاملNested Types
We currently see a convergence of module systems and type systems for object-oriented programming. This convergence is driven by the demands of large scale component systems. Objectoriented languages for medium-scale systems such as Eiffel or Sather still worked with an unstructured set of classes, but as systems grow this becomes less practical. Consequently, more recent languages such as Beta...
متن کاملA Proposal for Harmonising Types, Inheritance and Polymorphism for Object-oriented Programming
Object-Oriented Programming (OOP) has attracted a large following in recent years. Goals for the paradigm have included bringing computational implementations closer to abstractions (the HCI school, exemplified by Smalltalk []), partitioning spaces of concepts (the AI school, exemplified by CLOS []) and software engineering for reuse and extensibility (the SE school, exemplified by Eiffel []). ...
متن کاملGetting Class Correctness and System Correctness Equivalent (How to get covariance right)
Covariant typing policies, as they are available in Eiffel or Sather, result in a type system in which the correct typing of a system is not implied by the correct typing of each class. This hinders a secure, incremental development of class libraries in these object-oriented languages. Classes which are added to a library may invalidate others that are already in the library. The paper shows h...
متن کامل